package main

func main() {
	/*
		JavaScript:
			* 概念：一门客户端脚本语言
				*运行在客户端浏览器中的。每一个浏览器都有 JavaScript 的解析引擎
				*脚本语言：不需要编译，直接就可以被浏览器解析执行了

			* 功能：
				*可以来增强 用户 和 html 页面的交互过程，可以来控制 html 元素，让页面有一些动态的效果，增强用户的体验

			* JavaScript 发展史：
				1.1992年，Nombase公司，开发出第一门客户端脚本语言，专门用于表单的校验。命名为：c--，后来更名为：ScriptEase。
				2.1995年，Netscape（网景）公司，开发了一门客户端脚本语言：LiveScript。后来，请来了SUN公司的专家，修改LiveScript，命名为 JavaScript。
				3.1996年，微软抄袭 JavaScript 开发出 JScript 语言。
				4.1997年，ECMA（欧洲计算机协会制造商协会），ECMAScript，就是所有客户端脚本语言的标准。

				*JavaScript = ECMAScript + JavaScript自己特有的东西（BOM + DOM）

			* ECMAScript：客户端脚本语言的标准
				1.基本语法：
					1.与html结合方式
						1.内部JS：
							* 定义 <script>，标签体内容就是 JS 代码
						2.外部JS：
							* 定义 <script>，通过 src 属性引入外部的 JS 文件

						*注意：
							1.<script> 可以定义在 html 页面的任何地方。但是定义的位置会影响执行顺序。
							2.<script> 可以定义多个。
					2.注释：
						与 Go、C、Java语言一样。
					3.数据类型：
						1.原始数据类型（基本数据类型）：
							1.number：数字。整数/小数/NaN(not a number 一个不是数字的数字类型)
							2.string：字符串。字符串 "abc" "a" 'abc'（没有字符的概念）
							3.boolean：true 和 false
							4.null：一个对象为空的占位符
							5.undefined：未定义。如果一个变量没有给初始化值，则会被默认赋值为 undefined
						2.引用数据类型：对象

					4.变量：
						* 变量：一小块存储数据的内存空间。
						* Java语言是强类型语言，而JavaScript是弱类型语言。
							* 强类型：在开辟变量存储空间时，定义了空间将来存储的数据的数据类型。只能存储固定类型的数据。
							* 弱类型：在开辟变量存储空间时，不定义空间将来的存储数据类型，可以存放任意类型的数据。
						* 语法：
							* var 变量名 = 初始化值; / var 变量名;
					5.运算符
						1.一元运算符：只有一个运算数的运算符
							++ -- , +(正号) -(负号)
								* ++ --：与 C语言一样
								* +(-)：正负号
									*注意：在 JS 中，如果运算数不是运算符所要求的类型，那么 JS 引擎会自动的将运算数进行类型转换。
										*其他类型转 number：
											* string 转 number：按照字面值转换。如果字面值（整体）不是数字，则转为 NaN(不是数字的数字)。
											* boolean 转 number：true 转为 1，false 转为 0
						2.算数运算符：
							+ - * / % ...
						3.赋值运算符：
							= += -= ...
						4.比较运算符：
							> < >= <= == ===(全等于)
							* 比较方式：
								1.类型相同：直接比较
									*字符串：按照字典顺序比较，按位逐一比较，直到比出大小为止。
								2.类型不同：先进行类型转换，再比较
									* ===：在比较之前，先判断类型，如果类型不一致，则直接返回 false。
						5.逻辑运算符：
							&& || !
								* &&：与（短路）
								* ||：或（短路）
								* ! ：非
									* 其他类型转 boolean:
										1.number：0 或 NaN 为假，其他 为真
										2.string：除了 空字符串("")，其他都为 true
										3.null & undefined：都是 false
										4.对象：所有对象都为 true
									* if(obj != null){}//防止空指针异常 ——————简化书写——————> if(obj){}//防止空指针异常
									* if(str != null && str.length > 0){}//防止空指针异常 ——————简化书写——————> if(str){}//防止空指针异常
						6.三元运算符：
							? :	表达式
								*语法：
									* 表达式 ? 值1 : 值2;
									* 判断表达式的值，如果是 true 则取 值1，如果是 false 则取 值2。
					6.流程控制语句：
						1. if...else...
						2. switch：
							* 在 JS 中，switch语句 可以接受 任何类型的 原始数据类型。
						3. while
						4. do...while
						5. for
					7.JS特殊语法：
						1.语句以 ; 结尾，如果一行只有一条语句，则 ; 可以省略（与 Go 一样）
						2.变量的定义使用 var 关键字，也可以不使用。
						  * 用：定义的变量是 局部变量
						  * 不用：定义的变量是 全局变量（不建议）

	*/
}
